home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / c-tools / c_examples / led / string.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-03-24  |  2.0 KB  |  142 lines

  1. #include "aframe:include/string.hpp"
  2.  
  3. AFString::AFString(char* string)
  4.     :m_data(NULL)
  5. {
  6.     if(string) {
  7.         m_data = new char[strlen(string)+1];
  8.         strcpy(m_data,string);
  9.     }
  10. }
  11.  
  12. AFString::AFString(AFString* string)
  13.     :m_data(NULL)
  14. {
  15.     m_data = new char[string->length()+1];
  16.     strcpy(m_data,string->data());
  17. }
  18.  
  19. AFString*
  20. AFString::operator=(char* string)
  21. {
  22.     if(m_data)
  23.         delete m_data;
  24.     m_data = new char[strlen(string)+1];
  25.     strcpy(m_data,string);
  26.     
  27.     return this;
  28. }
  29.  
  30. AFString
  31. AFString::operator+=(char* string)
  32. {
  33.     char* temp;
  34.  
  35.     temp=m_data;
  36.     m_data = new char[strlen(temp)+strlen(string)+1];
  37.     strcpy(m_data,temp);
  38.     strcpy(&m_data[strlen(m_data)],string);
  39.  
  40.     delete temp;
  41.     
  42.     return this;
  43. }
  44.  
  45. AFString*
  46. AFString::operator=(AFString* string)
  47. {
  48.     return (*this)=string->data();
  49. }
  50.  
  51. AFString
  52. AFString::operator+=(AFString* string)
  53. {
  54.     return (*this)+=string->data();
  55. }
  56.  
  57. int
  58. AFString::length()
  59. {
  60.     return strlen(m_data);
  61. }
  62.  
  63. AFString*
  64. AFString::upper()
  65. {
  66.     int i;
  67.  
  68.     for(i=0;i<length();i++)
  69.         m_data[i] = toupper(m_data[i]);
  70.  
  71.     return this;
  72. }
  73.  
  74. AFString*
  75. AFString::lower()
  76. {
  77.     int i;
  78.  
  79.     for(i=0;i<length();i++)
  80.         m_data[i] = tolower(m_data[i]);
  81.  
  82.     return this;
  83. }
  84.  
  85.  
  86. char*
  87. AFString::data()
  88. {
  89.     return m_data;
  90. }
  91.  
  92. char
  93. AFString::operator[]    // Added Feb 15, 1996
  94.     (int i
  95.     )
  96. {
  97.     return (m_data[i]);
  98. }
  99.  
  100. int
  101. AFString::operator!=    // Added Feb 16, 1996
  102.     (AFString* string
  103.     )
  104. {
  105.     return (strcmp((char *)this,string->data()));
  106. }
  107.  
  108. int
  109. AFString::operator!=    // Added Feb 16, 1996
  110.     (char* string
  111.     )
  112. {
  113.     return (strcmp((char *)this,string));
  114. }
  115.  
  116. int
  117. AFString::operator==    // Added Feb 16, 1996
  118.     (char* string
  119.     )
  120. {
  121.     return (strcmp((char *)this,string));
  122. }
  123.  
  124. int
  125. AFString::operator==    // Added Feb 16, 1996
  126.     (char string
  127.     )
  128. {
  129.     return (strcmp((char *)this,(char *)string));
  130. }
  131.  
  132. ///////////////////////////////////////////////////////////
  133. // DestroyObject
  134. //    Do not call DestroyObject from the Destructor.  This
  135. //    routine is called by AFPtrDlist when the item is
  136. //  removed or cleanAndDestroy is called.
  137. void
  138. AFString::DestroyObject()
  139. {
  140.     delete this;
  141. }
  142.